package day4.homework;

import java.io.*;
import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.Method;


//通过一个类自定义的类  属性 任意  方法任意编写
//  通过反射获取类的所有属性和方法  然后 将获取的数据
//  写入到result.txt中  内容如下:
//  方法有:
//  属性有:
//  构造方法有:
public
class Demo4 {
    public static
    void main(String[] args) {
        try (FileWriter fr = new FileWriter("d:\\IO\\result.txt");
             BufferedWriter br = new BufferedWriter(fr);
        ) {
            Class clazz =d4.class;
            br.write("方法有：");
            for (Method m : clazz.getDeclaredMethods()) {
                br.write(m.getName() + "() ");
            }
            br.newLine();
            br.write("属性有：");
            for (Field f : clazz.getDeclaredFields()) {
                br.write(f.getType()+" "+f.getName() + " ");
            }
            br.newLine();
            br.write("构造方法有：");
            for (Constructor co : clazz.getDeclaredConstructors()) {
                br.write(co.getName() + " ");
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
     static class d4 {
        String name;
        Integer age;
        String type;
        private
        d4(String name, Integer age, String type) {
            this.name = name;
            this.age = age;
            this.type = type;
        }
        public
        d4() {
        }
        public
        void eat() {
            System.out.println("吃");
        }
        public
        void sleep() {
            System.out.println("睡");
        }
    }
}